package com.liu.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liu.dao.BJFoodDao;
import com.liu.entity.BJFood;
import com.liu.service.intf.BJFoodService;
import com.liu.vo.PageBean;
import com.liu.vo.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

/**
 ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
 │Esc│   │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │P/S│S L│P/B│  ┌┐    ┌┐    ┌┐
 └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘  └┘    └┘    └┘
 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
 │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │N L│ / │ * │ - │
 ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
 │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \\ │ │Del│End│PDn│ │ 7 │ 8 │ 9 │   │
 ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
 │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│\"'│ Enter  │               │ 4 │ 5 │ 6 │   │
 ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤     ┌───┐     ├───┼───┼───┼───┤
 │ Shift  │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│  Shift   │     │ ↑ │     │ 1 │ 2 │ 3 │   │
 ├─────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ E││
 │ Ctrl│    │Alt │         Space         │ Alt│    │    │Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │←─┘│
 └─────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
 */
@Service
public class BJFoodServiceImpl implements BJFoodService {
    @Autowired
    private BJFoodDao dao;
    @Override
    public R save(BJFood bjfood) {
        if (dao.add(bjfood)>0){
            return R.ok();
        }else {
            return R.fail();
        }
    }


    @Override
    public PageBean queryPage(int page, int limit) {
        //分页
        PageHelper.startPage(page, limit);
        //获取分页结果
        PageInfo<BJFood> pageInfo = new PageInfo<>(dao.selectAll());
        //返回分页的数据
        return PageBean.bean(pageInfo.getTotal(), pageInfo.getList());
    }

    @Override
    public R del(int id) {
        //1.验证参数
        if (id>0){
            //2.操作数据库 验证是否成功
            if (dao.del(id)>0){
                //删除成功
                return R.ok();
            }else {
                //删除失败
                return R.fail();
            }
        }else {
            return R.fail();
        }
    }

    @Override
    public R delBatch(int[] ids) {
        //1.验证参数
        if (ids != null && ids.length>0){
            if (dao.delBatch(ids)>0){
                return R.ok();
            }else {
                return R.fail();
            }
        }else {
         return R.fail();
        }
    }

    @Override
    public R update(BJFood bjfood) {
        if (dao.update(bjfood)>0){
            return R.ok();
        }else {
            return R.fail();
        }
    }

    @Override
    public PageBean queryPageWhere(String foodname, int page, int limit) {
        //验证 查询条件 如果为“” 那么赋值为null
        if (!StringUtils.hasLength(foodname)){
            foodname = null;
        }else {
            foodname = "%"+foodname+"%";//包含  模糊查询
        }
        //分页
        PageHelper.startPage(page, limit);
        //获取分页结果
        PageInfo<BJFood> pageInfo = new PageInfo<>(dao.selectWhere(foodname));
        //返回分页的数据
        return PageBean.bean(pageInfo.getTotal(), pageInfo.getList());
    }
}
